import multiprocessing
import os
import time


def watch():
    for i in range(3):
        print("看电视......", os.getpid())
        time.sleep(1)


def drink(food):
    for i in range(3):
        print(f"喝{food}......", os.getpid())
        time.sleep(1)


def eat(food):
    for i in range(3):
        print(f"吃{food}......", os.getpid())
        time.sleep(1)


if __name__ == "__main__":
    print("主进程：", os.getpid())

    # 创建三个子进程
    watch_process = multiprocessing.Process(target=watch)
    # 如果希望在父进程创建子进程时，传递数据给子进程的话，可以args,kwargs来传递
    drink_process = multiprocessing.Process(target=drink, args=("water",))  # 位置实参
    eat_process = multiprocessing.Process(target=eat, kwargs={"food": "lemon"})  # 命名实参

    # 注意，start表示调用开启进程操作，但是并不会阻塞等待进程真的开启，是一个异步操作。
    watch_process.start()
    drink_process.start()
    eat_process.start()

    print("主程序代码运行结束!")
